export default {
	// 命名空间
	namespaced:true,
	// 模块的state数据
	state: () => ({
		cart: JSON.parse(uni.getStorageSync('cart') || '[]')

	}),
	mutations:{
		addToCart(state, goods) {
			const findResult = state.cart.find((x) => x.goods_id === goods.goods_id)
			if (!findResult) {
				state.cart.push(goods)
			} else {
				findResult.goods_count++
			}
			
			console.log(state.cart)
			this.commit('m_cart/saveToStorage')
			
		},
		saveToStorage(state) {
			uni.setStorageSync('cart',JSON.stringify(state.cart))
			
		},
		// 更新购物选中状态
		updateGoodsState(state,goods){
			// 查询购物车中的商品信息
			const findResult = state.cart.find(x => x.goods_id === goods.goods_id)
			if (findResult) {
				// 更新状态
				findResult.goods_state = goods.goods_state
				//持久化到本地
				this.commit('m_cart/saveToStorage')
				
			}	
			
		},
		updateGoodsCount(state,goods) {
			// 查询购物车中的商品信息
			const findResult = state.cart.find(x => x.goods_id === goods.goods_id)
			if (findResult) {
				findResult.goods_count = goods.goods_count
				//持久化到本地
				this.commit('m_cart/saveToStorage')
				
			}
			
		},
		// 删除购物车商品
		removeGoodsById(state,goods_id) {
			// 过滤
			state.cart = state.cart.filter(x=>x.goods_id !== goods_id )
			// 持久化
			this.commit('m_cart/saveToStorage')
				
			
		},
		// 更新所有商品的勾选状态
		updateAllGoodsState(state, newState) {
			// 循环更新购物车中每件商品的勾选状态
			state.cart.forEach(x => x.goods_state = newState)
			this.commit('m_cart/saveToStorage')
			
		}
		
	},
	getters:{
		// 统计购物车商品的数量
		total(state){
			let c = 0
			// 循环商品的数量，累加到变量count中
			state.cart.forEach(goods => c +=goods.goods_count)
			return c
		},
		// 勾选的商品的总数量
		
		checkedCount(state) {
			
			return state.cart.filter(x =>x.goods_state).reduce((total, item) => total += item.goods_count,0)
			
		},
		// 已勾选的商品的总价
		checkedGoodsAmount(state) {
			return state.cart.filter(x=>x.goods_state).
			reduce((total,item) => total += item.goods_count * item.goods_price,0).toFixed(2)
			
		}
		
	}
}